package com.bi.common;

import lombok.Data;

import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;

/**
 * 分页查询基础类
 * 
 * @author BI Platform Team
 * @since 1.0.0
 */
@Data
public class PageQuery {

    /**
     * 当前页码（从1开始）
     */
    @NotNull(message = "页码不能为空")
    @Min(value = 1, message = "页码必须大于0")
    private Integer current = 1;

    /**
     * 每页数量
     */
    @NotNull(message = "每页数量不能为空")
    @Min(value = 1, message = "每页数量必须大于0")
    @Max(value = 1000, message = "每页数量不能超过1000")
    private Integer size = 10;

    /**
     * 排序字段
     */
    private String sortField;

    /**
     * 排序方向（asc/desc）
     */
    private String sortOrder = "desc";

    /**
     * 获取偏移量
     */
    public Integer getOffset() {
        return (current - 1) * size;
    }
}